1. Field of the Invention
The present invention relates generally to processing servo burst data in an embedded disk drive servo system and more specifically to a programmable servo burst decoder for processing servo bursts in an embedded disk drive servo system for any combination and order of fields within the servo burst.
2. Description of Related Art
In hard disk drives, an embedded servo system is typically used in positioning a read/write head over a particular field on a particular track on a particular disk. In an embedded servo system, each track on a disk is divided into a multiplicity of data regions by placing a servo sector in front of each data region. The servo sector provides both coarse and fine track following data, automatic gain control data, and synchronization data.
For example, in U.S. Pat. No. 4,823,212 issued to Knowles et al. on Apr. 18, 1989, each track is divided into an equal number of sectors. Each sector includes a section of servo code, referred to as a servo sector, at the beginning of the sector. Each servo sector is the same length and includes, starting at its leading edge, a write splice area, an automatic gain control field, a sector mark field, an index sector identifier, a defect bit, a Gray code track number field, and a track position field followed by another write splice area.
The write splice areas are used to compensate for disk rotational speed variations so that the servo code is not overwritten by data. The automatic gain control field is used to normalize the signals from the read/write head so that subsequent servo fields are properly detected and processed. The sector mark field is used to establish a timing reference for the servo signals that follow. The index sector identifier identifies the first sector on each track, i.e., provides an index pulse. The defect bit is used to indicate that the data sector associated with the servo code is defective. The Gray code track number field is a set of magnetic dibits that contain the track address. As is known to those skilled in the art, the track addresses are addresses that are encoded using a Gray code sequence so that any decoding uncertainty is limited to plus or minus one half track. With the Gray code, only one bit in the track address changes from track to track. Finally, the track position field is used to generate signals that are used for track following.
The various fields within the servo sector of Knowles et al. are typical. The particular arrangement of the fields within the servo sector can vary from disk drive manufacturer to disk drive manufacturer. The variation in the fields requires a unique servo burst processor for each servo sector layout. Developing a servo burst processor for a specific disk drive is expensive. Use of dedicated firmware by the disk drive microprocessor to process the servo burst limits the performance of the disk drive, because while the microprocessor is executing the dedicated servo burst firmware, the microprocessor cannot be used for any other disk drive operation. Consequently, a system is needed that allows easy processing of a wide variety of servo burst patterns, but yet does not require development of a special integrated circuit for each servo sector format. Unfortunately, such a system is not available in the prior art known to the inventors.
Further the configuration of a particular field within a servo sector can vary from disk drive to disk drive. For example, several different approaches have been used in the track position field of the servo sector to encode information that results in accurate track following. For examples of various track position field within a servo sector, see U.S. Pat. No. 4,823,212 issued to Knowles et al. on Apr. 18, 1989; U.S. Pat. No. 4,530,019 issued to Penniman on Jul. 16, 1985; U.S. Pat. No. 4,424,543 issued to Lewis et al. on Jan. 3, 1984; and U.S. Pat. No. 4,669,004 issued to Moon et al. on May 26, 1987, each of which are incorporated herein by reference in its entirety. To the extent that the track position fields in each of these references are different, each would require a different servo burst processor. This means that implementing a particular track position field would also require development of a specific servo burst processor that could process the particular information in the field. This further demonstrates the need for a system that can process any one of a number of servo sector formats as well as variations within a given format.